package end.dao;

import java.util.List;

import org.springframework.stereotype.Repository;

import end.handler.aop.log.MethodAnno;

/**
 * 
 * BaseMapper.java 2016-6-27
 *
 * Copyright zhaocj  Inc. All rights reserved.
 * Love Me Like Love Justin Bieber
 */
@Repository
public interface BaseMapper<T> {
	//根本主键查询数据   虽然是object对象  但是设计如此   可以以一个map为参数 在xml文件中判断不同的行唯一标示查询
	public T selectByPrimaryKey(Object key) throws Exception;
	//根本主键改变数据根本主键   数据是T对象
	public Integer updateByPrimaryKey(T t) throws Exception;
	//根据主键删除数据   可能主键是UUID
	public Integer deleteByPrimaryKey(Object key) throws Exception;
	//插入T类型数据
	public Integer insert(T t) throws Exception;
	//根据T对象选项删除数据  
	public Integer deleteByBean(T t) throws Exception;
	//根本T对象选项查询数据  的数量
	public Integer selectByBeanCount(T t) throws Exception;
	//根本T对象选项查询数据  主要用于分页
	@MethodAnno(comments="按页数查找")
	public List<T> selectByBean(T t) throws Exception;
	//用户条件模糊查询
	public List<T> selectByMap(Object obj) throws Exception;
	
}
